#ifndef BEHAVIOURARBITRATOR_H_
#define BEHAVIOURARBITRATOR_H_

#include "enums.h"
#include "events.h"
#include "containerWrapper.h"
#include "allBehaviours.h"
#include "deleteCustomClasses.h"
#include "character.h"

class BehaviourArbitrator
{
private:
	EventList events;


	static Behaviour* getCurrentBehaviour(StackI* _behaviourStack);

	static bool checkLifeOfStackBehaviours(StackI* _behaviourStack);


public:
	BehaviourArbitrator(){}

	static void eventTrigger(Event e);

	//return true if state changed - if new actions potentially needed
	static ActionList* update(StackI* _immediate, StackI* _shortTerm, StackI* _longTerm, EventList* _events, float _deltaSeconds, Character* _character); 



};

#endif